Many communication networks employed today, such as Ethernet Systems and other local area networks (or LAN's), consist of a series of components such as monitors, access terminals and other peripherals which receive and transmit a variety of communication signals either directly, via one or more intermediate nodes, or through a server node. The communication can be over a physical medium (such as electrical or fiber-optic cable) or by wireless means (using radio waves, micro-waves, or infrared waves).
A protocol is a set of predefined rules that govern how two or more processes communicate and interact to exchange data. The processes may be on the same machine or on different machines. Protocols are generally associated with particular services or tasks, such as data packaging or packet routing. A protocol specifies rules for setting up, carrying out, and terminating a communications connection, and also specifies the format the information packets must have when traveling across the connection.
One widely used protocol is the Internet Protocol (IP). IP is the widely supported network layer protocol for the Internet. This protocol defines and routes datagrams across the Internet and provides connectionless transport service. The IP protocol uses packet switching and provides a best-effort service for packet delivery. IP network components have become fast enough that real-time delivery of services such as streamed audio and video data is now feasible.
However, such real-time applications do not always function as expected in the presence of network impairments, such as delay, packet loss, and different access methods between the host computers and the network. Testing of real-time applications is hard to accomplish due to the difficulty of creating desired test conditions in a reliable and reproducible manner. It is not practical to modify the commercial application to simulate the impairment conditions.
Another known method for testing such applications involves building a network having a plurality of computers 10 encompassing all the possible access methods connected to a server 12 via a router 14, as shown in FIG. 1. For example, one test configuration may be a computer having ISDN (Integrated Services Digital Network) access at one end, a second computer having ADSL (Asymmetric Digital Subscriber Loop) access at the other end, a mean network delay of 200 msec and 5% network packet loss. This method is not realistic to model packet loss since the router 14 is only serving three or four computers 10 rather than hundreds of computers in a"true" network. This method is also time consuming and expensive.
Thus, there exists a need for an inexpensive and reliable method for testing the impact of different access methods and network conditions on various real-time applications. Such a method should also be transparent to the application.